#include<bits/stdc++.h>
#include<string>
#include<queue>
#include<set>
#include<vector>
#include<map>
#include<stack>
#define fi first
#define se second
#define ll long long
#define ull unsigned long long
using namespace std;
const int N=2e5+5;
const ll md=1e9+7;
const ll inf=1e18;
vector<ll>v[N*2];
ll a[N],b[N],n,f[N*2];
void solve(){
//fuck
cin>>n;
for(int i=1;i<=2*n;i++){
v[i].clear();
}
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
v[a[i]].push_back(b[i]);
}
ll ans=0;
for(int x=1;x*x<=2*n;x++){
for(int now:v[x]){
ans+=(x*x-now>0?f[x*x-now]:0ll);
f[now]++;
}
for(int y=x+1;y*x<=2*n;y++){
for(int now:v[y]){
ans+=(y*x-now>0?f[x*y-now]:0ll);
}
}
for(int now:v[x]){
f[now]--;
}
}
cout<<ans<<endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
memset(f,0,sizeof(f));
while(t--){
solve();
}
}
1650C - Weight of the System of Nested Segments | 1097A - Gennady and a Card Game |
248A - Cupboards | 1641A - Great Sequence |
1537A - Arithmetic Array | 1370A - Maximum GCD |
149A - Business trip | 34A - Reconnaissance 2 |
59A - Word | 462B - Appleman and Card Game |
1560C - Infinity Table | 1605C - Dominant Character |
1399A - Remove Smallest | 208A - Dubstep |
1581A - CQXYM Count Permutations | 337A - Puzzles |
495A - Digital Counter | 796A - Buying A House |
67A - Partial Teacher | 116A - Tram |
1472B - Fair Division | 1281C - Cut and Paste |
141A - Amusing Joke | 112A - Petya and Strings |
677A - Vanya and Fence | 1621A - Stable Arrangement of Rooks |
472A - Design Tutorial Learn from Math | 1368A - C+= |
450A - Jzzhu and Children | 546A - Soldier and Bananas |